<?php
require_once("libs/controller.php");
require_once("libs/dbmodel.php");

class SqlController extends Controller {

	public function __construct() {
		$this->layout = "administracion";
		$this->pageTitle = "Escuela Nacional de Fiscales";	
	}
	
	public function index() {
		try {
			$this->layout = "administracion";
			$_SESSION["pestania"] = 3;
			$this->nivelesPermitidos = array(1);
			extract($_REQUEST);
			if(isset($sql))
			{
				$sql=stripslashes($sql);				
				$this->sql=$sql;
				
				$misql=stripslashes($sql);	
				//verifico si se desea insertar
				$var_insert=stripos($misql,"INSERT");
				//verifico si se desea seleccionar
				$var_select=stripos($misql,"SELECT");
				//verifico si se desea eliminar
				$var_delete=stripos($misql,"DELETE");
				//verifico si se desea actualizar
				$var_update=stripos($misql,"UPDATE");
				//verifico si se desea modificar la estructura de una tabla
				$var_alter=stripos($misql,"ALTER");

				/*seleccionar*/
				if($var_select === 0)	
				{	
					$this->modelo=new DbModel();
					$this->modelo->execQuery($sql);
					$result=$this->modelo->getResult();
					$nroscampos=pg_num_fields($result);
					$nrosfilas=pg_num_rows($result);
					for($i=0;$i<$nroscampos;$i++)
					{
						$campos[$i]=pg_field_name($result,$i);
					}
					$this->campos=$campos;
					for($i=0;$i<$nrosfilas;$i++)
					{
						$fila = pg_fetch_array ($result, $i);
						for($j=0;$j<$nroscampos;$j++)
						{
							 	$valores[$i][$j]=$fila[$j];
						}
					}
					$this->valores=$valores;
				}/*insertar, eliminar o actualizar*/
				elseif($var_delete === 0 || $var_update === 0 || $var_insert === 0  || $var_alter === 0)
				{
					$this->modelo=new DbModel();
					if($this->modelo->execQuery($sql))
						$this->resultado="Query ejecutado correctamente";
					else
						$this->resultado="Error ejecutando Query";
				}
			}
			else
				$this->sql="";
			$this->logger->info(LocalUser::getCurrentUser()->getId()." ".LocalUser::getCurrentUser()->getIdPersona()." sql->index");
		} catch (Exception $e) {
			$this->logger->error(LocalUser::getCurrentUser()->getId()." ".LocalUser::getCurrentUser()->getIdPersona()."error en sql->index: ".$e->getMessage());
			$mensaje="Ha ocurrido un error ejecutando query. <br>".$e->getMessage();
			$this->continuar=false;
			$this->showNotificacion("",$mensaje,"Regresar","sql/","administracion","");
		}
	}
	
	public function userNotAllowed() {
		if (LocalUser::getCurrentUser()->getNivel() == -1)
			$this->showNotificacion("","Estimado usuario debe iniciar sesi&oacute;n.","Aceptar","sedes/index","administracion","Escuela Nacional de Fiscales.-Login");
		else
			$this->showNotificacion("","Usuario no permitido","Aceptar","usuario/index","principal","");
	}

	public function sessionExpired() 
	{
		$this->logger->info(LocalUser::getCurrentUser()->getId() ." " . LocalUser::getCurrentUser()->getIdPersona()." Sesion expirada");
		$this->showNotificacion("","Su sesi&oacute;n ha expirado.","Aceptar","log/index","administracion","");
	}
}
?>
